#!/usr/bin/env node

const EventEmitter = require('events').EventEmitter;

class Dog extends EventEmitter {
  constructor(name, energy) {
    super();
    this.name = name;
    this.energy = energy;
    this.startTimer();
  }
  get name() { return this.#name;  }
  get energy() { return this.#energy;  }
  etEnergy(e) {
    this.energy = e;
    this.startTimer();
  }
  name = '';
  energy = 0;
  timer  = null;
  startTimer() {
    if(this.timer !== null) return;

    this.timer = setInterval(()=> {
      if(this.energy > 0) {
        this.emit('bark');
        this.energy--;
      } else {
        clearInterval(this.timer);
        this.timer = null;                         
      }
    }, 1000);
  }
}

module.exports = Dog;
